/**
 * Created by Camus on 11/17/13.
 */
 
const MIS_EVENTOS_KEY="MIS_EVENTOS";
 

/*
 * Guarda un elemento en formato Json en la key asociada en el localStorage.
 */

function addItemToLocalStorage(key, value){
    localStorage[key]=angular.toJson(value);
}

/*
 * Retorna el objeto asociado a la key.
 */
function getItemFromLocalStorage(key){
    return angular.fromJson(localStorage[key]);
}


/*
 * Agrega un item en la "key" del localStorage el cual es una colleccion.
 */
function addItemToCollectionLocalStorage(key,value){
    var listElements=getItemFromLocalStorage(key);
    var element=angular.fromJson(value);
    listElements.push(element);
    localStorage[key]=angular.toJson(listElements);        
}

/*
 * Recupera un item del localStorage que es una colleccion.
 */
function getItemCollectionFromLocalStorage(key){
    var listElements=localStorage[key];
    if(isEmpty(listElements)){
        localStorage[key]=angular.toJson([]);
        return getItemFromLocalStorage(key);
    }else{
        return angular.fromJson(listElements);
    }
}

function addEventoLocalStorage(evento){
    addItemToCollectionLocalStorage(MIS_EVENTOS_KEY,evento); 
}

/**
 * Actualiza un evento en la lista de eventos almacenada en localStorage
 * y lo guarda en localStorage.
 * @param evento
 */
function actualizarEventoLocalStorage(evento){
    var index=0;
    var eventosLocalStorage=getEventosLocalStorage();
    while(index < eventosLocalStorage.length){
        var elemento=eventosLocalStorage[index];
        if(elemento.id===evento.id){
            eventosLocalStorage[index]=evento;
            addItemToLocalStorage(MIS_EVENTOS_KEY,eventosLocalStorage);
            break;
        }
        index++;
    }
}

/**
 * Recupera un evento apartir de un ID.
 * @param idEvento
 * @returns {*}
 */
function getEventoFromLocalStorageById(idEvento){
    var index=0;
    var eventosLocalStorage=getEventosLocalStorage();
    while(index < eventosLocalStorage.length){
        var elemento=eventosLocalStorage[index];
        if(elemento.id==idEvento){
            return elemento;
        }
        index++;
    }
}

function getEventosLocalStorage(){
    return getItemCollectionFromLocalStorage(MIS_EVENTOS_KEY);
}
